﻿package com.eagle.user.service;

import java.util.List;
import com.eagle.commons.pub.MethodResult;
import com.eagle.commons.vo.tbl_CardUserDic;
import com.eagle.user.vo.PageStruct;
/**
 * 用户信息接口，实现用户信息的增加，修改和查询功能
 * @author 王凤玉
 * */
public interface UserService {
	
	/**
	 * 增加用户信息
	 * @param user 用户对象
	 * @param mr 错误提示信息 
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	public Boolean addUser(tbl_CardUserDic user,MethodResult mr) throws Exception;
	
	/** 删除用户信息
	 * @param userId 用户编号
	 * @param mr 错误提示信息
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	public Boolean delUser(String userId,MethodResult mr) throws Exception;
	
	/** 更新用户密码
	 * @param userAlt 用户更改信息对象
	 * @param mr 错误提示信息
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	//public Boolean editUserPwd(Tbl_UserAltWaste userAlt,MethodResult mr) throws Exception;
	
	/** 更新用户密码--原user模块测试
	 * @param user 用户信息对象
	 * @param mr 错误提示信息
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	public Boolean editPwd(tbl_CardUserDic user,MethodResult mr) throws Exception;
	
	/** 更新用户信息
	 * @param  user 用户对象
	 * @param  mr 错误提示信息 
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	//public Boolean editUser(Tbl_User user,MethodResult mr) throws Exception;
	
	 /**
	  * 根据UserID 查询用户信息
	  * @param  userId 用户编号
	  * @param  mr 错误提示信息 
	  * @return 成功返回user对象，失败返回null
	  * @throws Exception
	  */
	//public Tbl_User getUserById(String userId,MethodResult mr) throws Exception;
	/**
	 * 查询所有用户信息  不分页
	 * @param  mr 错误提示信息
	 * @return 若成功，返回user对象集合，若失败，返回null
	 * @throws Exception
	 */
	//public List<Tbl_User> allUser(MethodResult mr) throws Exception;
	
	/**
	 * 查询所有用户信息  ，分页显示时数据条数
	 * @param  mr 错误提示信息 
	 * @return 成功返回数据数量，失败返回0
	  * @throws Exception
	 */
	public int allCount(MethodResult mr) throws Exception;
	
	/**
	 * 查询所有用户信息  ，分页
	 * @param  pageStruct 分页信息对象
	 * @param  mr 错误提示信息
	 * @return 若成功，返回user对象集合，若失败，返回null
	 * @throws Exception
	 */
	public List<tbl_CardUserDic> pageAllUser(PageStruct pageStruct,MethodResult mr) throws Exception;
	 /**
	  * 根据UserName模糊查询用户信息，不分页显示
	  * @param  userName 用户姓名
	  * @param  mr 错误提示信息 
	  * @return 成功返回user对象的集合，失败返回null
	  * @throws Exception
	  */
	//public List<Tbl_User> getUserByName(String userName,MethodResult mr) throws Exception;
	
	/**
	  * 根据UserName模糊查询用户信息，分页显示时数据总条数
	  * @param  userName 用户姓名
	  * @param  mr 错误提示信息
	  * @return 成功返回数据数量，失败返回0
	  * @throws Exception
	  */
	public int userCount(String userName,MethodResult mr) throws Exception;
	
	 /**
	  * 根据UserName模糊查询用户信息，分页显示
	  * @param userName 用户姓名
	  * @param pageStruct 分页信息对象
	  * @param mr 错误提示信息
	  * @return 成功返回user对象的集合，失败返回null
	  * @throws Exception
	  */
	//public List<Tbl_User> pageUser(String userName,PageStruct pageStruct,MethodResult mr) throws Exception;
	
	/**
	 * 根据身份证号或者组织机构代码校验用户是否已经注册
	 * @param CertSN 证件号码
	 * @param mr 错误信息
	 * @return 存在返回true,不存在返回false
	 * @throws Exception
	 */
	public boolean checkUser(String CertSN,MethodResult mr)throws Exception;
	
	/**
	 * 更新用户状态
	 * @param user 用户对象
	 * @param mr 错误信息
	 * @return 更新成功返回true，更新失败返回flase
	 * @throws Exception
	 */
	//public boolean editStatus(Tbl_User user ,MethodResult mr) throws Exception;
	/**
	 * 更新正式用户状态
	 * @param user 用户对象
	 * @param mr 错误信息
	 * @return 更新成功返回true，更新失败返回flase
	 * @throws Exception
	 */
	public Boolean editUserStatus2(tbl_CardUserDic user,MethodResult mr) throws Exception;
	
	/**
	  * 根据UserName，用户属性 模糊查询用户信息，分页显示时数据总条数
	  * @param  user 用户信息对象
	  * @param  mr 错误信息
	  * @return 成功返回数据数量，失败返回0
	  * @throws Exception
	  */
	//public int likeCount(Tbl_User user,MethodResult mr) throws Exception;
	
	 /**
	  * 根据UserName，用户属性  模糊查询用户信息，分页显示
	  * @param  user 用户信息对象
	  * @param  pageStruct 分页信息对象  
	  * @param  mr 错误信息
	  * @return 成功返回user对象的集合，失败返回null
	  * @throws Exception
	  */
	//public List<Tbl_User> pageLike(Tbl_User user,PageStruct pageStruct,MethodResult mr) throws Exception;
	
	/**
	 * 修改用户Email服务
	 * @param userAlt 用户更改信息对象
	 * @param  mr 错误信息
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	//public Boolean editEmail(Tbl_UserAltWaste userAlt,MethodResult mr) throws Exception;
	
	/**
	 * 修改用户短信服务
	 * @param userAlt 用户更改信息对象
	 * @param  mr 错误信息
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	//public Boolean editSMS(Tbl_UserAltWaste userAlt,MethodResult mr) throws Exception;
	
	
	/**
	 * 修改用户邮递服务服务
	 * @param userAlt 用户更改信息对象
	 * @param  mr 错误信息
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	//public Boolean editPost(Tbl_UserAltWaste userAlt,MethodResult mr) throws Exception;
	
	/** 更新用户信息，从userAlt表
	 * @param  userAlt 用户更改信息对象
	 * @param  mr 错误提示信息 
	 * @return 成功返回true，失败返回false
	 * @throws Exception
	 */
	//public Boolean editUserAlt(Tbl_UserAltWaste userAlt,MethodResult mr) throws Exception;
	/** 系统分配userid	00000000-09999999为集团用户 10000000-99999998为个人用户
	 * @param  userType 用户类型
	 * @param  mr 错误提示信息 
	 * @return 用户编号
	 * @throws Exception
	 */
	public String getUserIdAuto(int userType, MethodResult mr)throws Exception;
	
	
 //liujunmei 修改	
	/**
	  * 根据UserName 模糊查询用户信息，分页显示时数据总条数    ljm
	  * @param  user 用户信息对象
	  * @param  mr 错误信息r
	  * @return 成功返回数据数量，失败返回0
	  * @throws Exception
	  */
	public int countByuserName(String userName)throws Exception;
	/**
	  * 根据UserName，查询用户信息，分页显示时记录集合    ljm
	  * @param  user 用户信息对象
	  * @param  mr 错误信息r
	  * @return 成功返回对象集合，失败返回0
	  * @throws Exception
	  */
	public List<tbl_CardUserDic> pageByUserName(String userName,PageStruct pageStruct,MethodResult mr)throws Exception;
	/**
	 * 更改用户状态 
	 *@param  user 用户信息对象  ljm
	 * @param  mr 错误信息true,失败返回false
	 *  
	 */	
	public Boolean editUserStatus(tbl_CardUserDic user,MethodResult mr)throws Exception;
	/**
	 * 根据UserID 查询用户信息  ljm
	  * @param  userId 用户编号
	  * @param  mr 错误提示信息 
	  * @return 成功返回user对象，失败返回null
	  * @throws Exception
	 */
	public tbl_CardUserDic getUserByID(Integer UserID,MethodResult mr)throws Exception;
	/**
	 *增加用户信息
	 * @param user 用户对象 ljm
	 * @param mr 错误提示信息 
	 * @return 成功返回true，失败返回false
	 * @throws Exception 
	 */
	public Boolean addNewUser(tbl_CardUserDic user,Integer num,MethodResult mr)throws Exception ;
	/**
	 * 修改用户信息时，插入一条记录  ljm
	 *@param user 用户对象 
	 * @param mr 错误提示信息 
	 * @return 成功返回true，失败返回false
	 * @throws Exception  
	 */
	public Boolean addOldUser(tbl_CardUserDic user,int type,MethodResult mr)throws Exception ;
	/**
	 * 根据用户号查询用户信息显示资料最近跟新的那条
	 * @param  userId 用户编号
	 * @param  mr 错误提示信息 
	 * @return 成功返回user对象，失败返回null
	 * @throws Exception 
	 */
	public tbl_CardUserDic getUserByIDLastest(Integer UserID,MethodResult mr)throws Exception;
	/**
	 * 查询所有用户编号和名称  wfy
	 * @return 用户信息集合
	 * @throws Exception
	 */
	public List<tbl_CardUserDic> getAllName() throws Exception;
}
